home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / bowling.arc / BOWLING.BAS (.txt)
Encoding:
GW-BASIC  |  1986-03-30  |  2.4 KB  |  83 lines

  1. 10  DIM NA$(3),S(3),T(3):COLOR 3,0,0
  2. 20  WIDTH 40:KEY OFF:LOCATE 1,1,0:CLS:DEF SEG=0:POKE 1047,64
  3. 30  LOCATE 8,12:PRINT "BOWLING CHAMP!"
  4. 40  LOCATE 13,7:PRINT "How many bowlers? (1-4):"
  5. 50  A$="":WHILE A$="":A$=INKEY$:WEND
  6. 60  IF ASC(A$)<49 OR ASC(A$)>52 THEN 50 ELSE A=VAL(A$)
  7. 70  FOR I=1 TO A:LOCATE 15+I,8:PRINT "Bowler";I;
  8. 80  LOCATE ,16:PRINT "'s name:";
  9. 90  INPUT A$:NA$(I-1)=LEFT$(A$,8):NEXT
  10. 100  '
  11. 110  CLS:COLOR 15:LOCATE 1,10:PRINT "1  2  3  4  5  6  7  8  9  10"
  12. 120  LOCATE 2,10:FOR J=1 TO 31:PRINT CHR$(196);:NEXT
  13. 130  FOR I=1 TO A:LOCATE 2*I+1,1:COLOR I+1:PRINT NA$(I-1);:LOCATE ,12
  14. 140  COLOR 15:FOR J=12 TO 36 STEP 3:PRINT CHR$(179)+"  ";:NEXT
  15. 150  LOCATE 2*I+2,10:FOR J=1 TO 31:PRINT CHR$(196);:NEXT :NEXT
  16. 160  LOCATE 12,1:FOR I=0 TO A=1:IF I=2 THEN LOCATE 14,1
  17. 170  COLOR I+2:PRINT NA$(I);":";SPC(19-LEN(NA$(I)));:NEXT :COLOR 15
  18. 180  LOCATE 15,1:FOR I=1 TO 39:PRINT CHR$(196);:NEXT
  19. 190  LOCATE 25,1:FOR I=1 TO 39:PRINT CHR$(196);:NEXT
  20. 200  '
  21. 210  FOR I=0 TO A-1:S(I)=1:NEXT
  22. 220  '
  23. 230  FOR Q=1 TO 10:FOR Z9=0 TO A-1
  24. 240  COLOR ,Z9+2:FOR I=16 TO 24:LOCATE I,1:PRINT SPC(39):NEXT
  25. 250  B1=0:GOSUB 390
  26. 260  IF J1<>10 THEN B1=1:GOSUB 430
  27. 270  IF Q=10 THEN ON S GOTO 280,310,310,280,340
  28. 280  NEXT :NEXT :LOCATE 16,10:PRINT "PLAY AGAIN?(Y OR N)"
  29. 290  A$="":WHILE A$="":A$=INKEY$ :WEND:IF A$="Y" THEN RUN ELSE COLOR 7,0:SYSTEM
  30. 300  '
  31. 310  LOCATE 20,1:PRINT "TAKE TWO MORE BALLS, ";NA$(Z9);
  32. 320  FOR I=1 TO 1000:NEXT :LOCATE ,1:PRINT SPC(29)
  33. 330  S(Z9)=S-1:B1=1:GOSUB 390:IF J<>10 THEN 370 ELSE 360
  34. 340  LOCATE 20,1:PRINT "TAKE ONE MORE BALL, ";NA$(Z9);
  35. 350  FOR I=1 TO 1000:NEXT :LOCATE ,1:PRINT SPC(28)
  36. 360  S(Z9)=1:B1=2:GOSUB 390:GOTO 280
  37. 370  S(Z9)=1:B1=2:GOSUB 430:GOTO 280
  38. 380  '
  39. 390  COLOR 15:LOCATE 17,39
  40. 400  FOR I=1 TO 31:READ PC:PRINT CHR$(PC);:NEXT :RESTORE
  41. 410  PS=1=1:J1=0:GOTO 440
  42. 420  '
  43. 430  PS=0
  44. 440  GOSUB 500:T=T(Z9):S=S(Z9):T=T+J
  45. 450  ON S(Z9) GOSUB 680,700,720,740,760
  46. 460  T(Z9)=T:S(Z9)=S:COLOR Z9+2,0
  47. 470  LOCATE 14+(Z9<2)*2,31+(Z9/2=INT(Z9/2))*20:PRINT T(Z9)
  48. 480  COLOR 0,Z9+2:RETURN
  49. 490  '
  50. 500  H=1:V=24:D=-1:COLOR 0,Z9+2
  51. 510  WHILE INKEY$="":LOCATE V,H:PRINT " ";
  52. 520  V=V+D:LOCATE V,H:PRINT "O";
  53. 530  FOR I=1 TO 10:NEXT :IF V=24 OR V=16 THEN D=-D
  54. 540  WEND:FOR H=2 TO 35:LOCATE V,H-1:PRINT " O";:A$=INKEY$
  55. 545  IF A$=CHR$(31) THEN WHILE INKEY$="":WEND
  56. 550  SOUND 37,0.5:SOUND 32767,0.1:NEXT
  57. 560  J=0:WHILE H<40
  58. 570  IF SCREEN (V,H)=234 THEN J=J+1 ELSE 610
  59. 580  FOR D=-1 TO 1 STEP 2:X1=V:X2=H
  60. 590  X1=X1+D:X2=X2+1:IF SCREEN (X1,X2)=234 THEN LOCATE X1,X2:PRINT " ";:J=J+1:SOUND 74,0.5:SOUND 32767,0.1:GOTO 590
  61. 600  NEXT
  62. 610  LOCATE V,H-1:PRINT " O";:H=H+1:WEND
  63. 620  J1=J1+J
  64. 630  LOCATE 2*Z9+3,7+3*Q+B1:COLOR -(2+Z9)*(B1=0),-(2+Z9)*(B1<>0):G=J+48
  65. 640  IF J1=10 THEN IF PS THEN G=88 ELSE G=47
  66. 650  PRINT CHR$(G):COLOR 0,2+Z9
  67. 660  LOCATE V,H-1:PRINT " ";:RETURN
  68. 670  '
  69. 680  IF J1=10 THEN IF PS THEN S=2 ELSE S=5
  70. 690  RETURN
  71. 700  T=T+J:IF J=10 THEN S=3 ELSE S=4
  72. 710  RETURN
  73. 720  T=T+J*2:IF J<>10 THEN S=4
  74. 730  RETURN
  75. 740  T=T+J:IF J1=10 THEN S=5 ELSE S=1
  76. 750  RETURN
  77. 760  T=T+J:IF J=10 THEN S=2 ELSE S=1
  78. 770  RETURN
  79. 1000  '
  80. 1001  DATA 234,31,29,29,234,31,29,29,234,28
  81. 1002  DATA 234,31,29,29,29,29,234,28,234,31
  82. 1003  DATA 29,29,234,28,234,31,29,29,234,31,234
  83.